package com.wind.taobao.api.trade.product.convert
{
	import com.wind.taobao.api.trade.product.model.Product;
	import com.wind.taobao.core.util.TaobaoConstants;
	
	import mx.collections.ArrayCollection;


	/**
	 * Product转换器
	 * @author fxy
	 *
	 */
	public class ProductConvert
	{
		/**
		 * 转换Product集合
		 */
		public static function convertProducts(value:Object, type:String="json"):ArrayCollection
		{
			var products:ArrayCollection=new ArrayCollection();
			if (value != null)
			{
				if (type == TaobaoConstants.JSON)
				{
					if ((value as Array).length > 0)
					{
						for (var i:uint=0; i < (value as Array).length; i++)
						{
							products.addItem(convertProduct((value as Array)[i]));
						}
					}
				}
				else
				{
					//TODO
				}
			}
			return products;
		}

		/**
		 * 转换Product
		 */
		public static function convertProduct(value:Object, type:String="json"):Product
		{
			var product:Product=new Product();
			if (value == null)
				return product;
			if (type == TaobaoConstants.XML)
			{
				product=convertXMLToProduct(XML(value), product);
			}
			else
			{
				product=convertJSONToProduct(value, product);
			}
			return product;
		}

		/**
		 * JSON转换为Product
		 */
		private static function convertJSONToProduct(json:Object, product:Product):Product
		{
			if (json.hasOwnProperty(TaobaoConstants.PRODUCT_ID))
			{
				product.product_id=json[TaobaoConstants.PRODUCT_ID];
			}
			if (json.hasOwnProperty(TaobaoConstants.OUTER_ID))
			{
				product.outer_id=json[TaobaoConstants.OUTER_ID];
			}
			if (json.hasOwnProperty(TaobaoConstants.TSC))
			{
				product.tsc=json[TaobaoConstants.TSC];
			}
			if (json.hasOwnProperty(TaobaoConstants.CID))
			{
				product.cid=json[TaobaoConstants.CID];
			}

			if (json.hasOwnProperty(TaobaoConstants.CAT_NAME))
			{
				product.cat_name=json[TaobaoConstants.CAT_NAME];
			}
			if (json.hasOwnProperty(TaobaoConstants.PROPS))
			{
				product.props=json[TaobaoConstants.PROPS];
			}
			if (json.hasOwnProperty(TaobaoConstants.PROPS_STR))
			{
				product.props_str=json[TaobaoConstants.PROPS_STR];
			}
			if (json.hasOwnProperty(TaobaoConstants.NAME))
			{
				product.name=json[TaobaoConstants.NAME];
			}
			if (json.hasOwnProperty(TaobaoConstants.BINDS))
			{
				product.binds=json[TaobaoConstants.BINDS];
			}
			if (json.hasOwnProperty(TaobaoConstants.BINDS_STR))
			{
				product.binds_str=json[TaobaoConstants.BINDS_STR];
			}
			if (json.hasOwnProperty(TaobaoConstants.SALE_PROPS))
			{
				product.sale_props=json[TaobaoConstants.SALE_PROPS];
			}
			if (json.hasOwnProperty(TaobaoConstants.SALE_PROPS_STR))
			{
				product.sale_props_str=json[TaobaoConstants.SALE_PROPS_STR];
			}
			if (json.hasOwnProperty(TaobaoConstants.PRICE))
			{
				product.price=json[TaobaoConstants.PRICE];
			}
			if (json.hasOwnProperty(TaobaoConstants.DESC))
			{
				product.desc=json[TaobaoConstants.DESC];
			}
			if (json.hasOwnProperty(TaobaoConstants.PIC_PATH))
			{
				product.pic_path=json[TaobaoConstants.PIC_PATH];
			}
			if (json.hasOwnProperty(TaobaoConstants.PRODUCT_IMG))
			{
				product.productImgs=ProductImgConvert.convertProductImgs(json[TaobaoConstants.PRODUCT_IMG]);
			}
			if (json.hasOwnProperty(TaobaoConstants.PRODUCT_PROP_IMG))
			{
				product.productPropImgs=ProductPropImgConvert.convertProductPropImgs(json[TaobaoConstants.PRODUCT_PROP_IMG]);
			}
			if (json.hasOwnProperty(TaobaoConstants.CREATED))
			{
				product.created=json[TaobaoConstants.CREATED];
			}
			if (json.hasOwnProperty(TaobaoConstants.MODIFIED))
			{
				product.modified=json[TaobaoConstants.MODIFIED];
			}
			return product;
		}

		/**
		 * XML转换为Product
		 */
		private static function convertXMLToProduct(value:XML, product:Product):Product
		{
			return product;
		}


	}
}